home *** CD-ROM | disk | FTP | other *** search
/ The Atari Compendium / The Atari Compendium (Toad Computers) (1994).iso / files / prgtools / editors / cvhyptxt.lzh / CVHYPTXT.LST < prev    next >
Encoding:
File List  |  1985-11-20  |  9.1 KB  |  421 lines

  1. ' Carlos Varela's Hypertext System Beta Version
  2. '
  3. ' This is a legal agreement between you (the end user) and Carlos
  4. ' Varela, before using this program, you should carefully read the
  5. ' following terms and conditions. If you do not agree to the terms
  6. ' of this agreement, promptly destroy the program and source code.
  7. '
  8. ' This program and source code are provide "AS IS". Carlos Varela
  9. ' makes no warranty express or implied with respect to the program
  10. ' or the source code. The entire risk arising out of use or 
  11. ' performance of the program and source code remains with you.
  12. '
  13. ' In no event will Carlos Varela be liable for any lost profits,
  14. ' lost savings, incidental damages or other economic consequencial
  15. ' damages. 
  16. '
  17. '
  18.  
  19.  
  20.  
  21. CLS
  22. @init
  23. > PROCEDURE buttondown
  24.   DEFFILL 2
  25.   PBOX 600,165,620,175
  26.   COLOR 1
  27.   BOX 598,163,622,177
  28.   COLOR 0
  29.   LINE 599,164,621,164
  30.   LINE 599,164,599,176
  31.   COLOR 3
  32.   LINE 599,176,621,176
  33.   LINE 621,164,621,176
  34.   COLOR 1
  35.   BOX 609,167,610,173
  36.   LINE 606,170,613,170
  37.   LINE 607,169,612,169
  38.   LINE 608,168,611,168
  39.   LINE 609,167,610,167
  40. RETURN
  41. > PROCEDURE buttondown2
  42.   COLOR 3
  43.   LINE 599,164,621,164
  44.   LINE 599,164,599,176
  45.   GET 600,165,620,175,temp$
  46.   PUT 601,165,temp$
  47.   temp$=""
  48.   @scrolldown
  49.   @buttondown
  50. RETURN
  51. > PROCEDURE buttonup
  52.   DEFFILL 2
  53.   PBOX 600,180,620,190
  54.   COLOR 1
  55.   BOX 598,178,622,192
  56.   COLOR 0
  57.   LINE 599,179,621,179
  58.   LINE 599,179,599,191
  59.   COLOR 3
  60.   LINE 599,191,621,191
  61.   LINE 621,179,621,191
  62.   COLOR 1
  63.   BOX 609,182,610,188
  64.   LINE 606,185,613,185
  65.   LINE 607,186,612,186
  66.   LINE 608,187,611,187
  67.   LINE 609,188,610,188
  68. RETURN
  69. > PROCEDURE buttonup2
  70.   COLOR 3
  71.   LINE 599,179,621,179
  72.   LINE 599,179,599,191
  73.   GET 600,180,620,190,temp$
  74.   PUT 601,181,temp$
  75.   temp$=""
  76.   @scrollup
  77.   @buttonup
  78. RETURN
  79. > PROCEDURE closebusybox
  80.   PUT 160,75,busybox$
  81. RETURN
  82. > PROCEDURE displayfirstlines
  83.   toplinedisplayer=1
  84.   FOR n=0 TO 15
  85.     PRINT AT(5,n+4);SPACE$(72)
  86.     PRINT AT(5,n+4);a$(n)
  87.   NEXT n
  88. RETURN
  89. > PROCEDURE drawboxbutton(x,y,box$)
  90.   COLOR 1
  91.   BOX x,y,x+100,y+12
  92.   DEFFILL 2
  93.   PBOX x+2,y+2,x+98,y+10
  94.   COLOR 0
  95.   LINE x+1,y+1,x+99,y+1
  96.   LINE x+1,y+1,x+1,y+11
  97.   COLOR 3
  98.   LINE x+99,y+1,x+99,y+11
  99.   LINE x+1,y+11,x+99,y+11
  100.   GRAPHMODE 2
  101.   TEXT x+27,y+9,box$
  102.   GRAPHMODE 1
  103. RETURN
  104. > PROCEDURE drawboxbuttondown(x,y,box$)
  105.   COLOR 3
  106.   LINE x+1,y+1,x+99,y+1
  107.   LINE x+1,y+1,x+1,y+11
  108.   GET x+2,y+2,x+98,y+10,temp$
  109.   PUT x+3,y+3,temp$
  110. RETURN
  111. > PROCEDURE drawbusybox(text$)
  112.   GET 160,75,480,125,busybox$
  113.   DEFFILL 2
  114.   PBOX 160,75,480,125
  115.   COLOR 1
  116.   BOX 160,75,480,125
  117.   BOX 178,103,462,117
  118.   COLOR 0
  119.   LINE 179,104,179,116
  120.   LINE 179,104,461,104
  121.   COLOR 3
  122.   LINE 461,104,461,116
  123.   LINE 179,116,461,116
  124.   DEFFILL 0
  125.   PBOX 180,105,460,115
  126.   PBOX 180,85,460,95
  127.   COLOR 1
  128.   BOX 178,83,462,97
  129.   COLOR 3
  130.   LINE 179,84,179,96
  131.   LINE 179,84,461,84
  132.   COLOR 0
  133.   TEXT 188,92,text$
  134. RETURN
  135. > PROCEDURE drawmenu
  136.   CLS
  137.   COLOR 1
  138.   BOX 0,0,639,199
  139.   COLOR 2
  140.   BOX 1,1,638,198
  141.   COLOR 3
  142.   BOX 2,2,637,197
  143.   BOX 3,3,636,196
  144.   COLOR 1
  145.   BOX 25,5,624,20
  146.   COLOR 2
  147.   LINE 26,6,26,19
  148.   LINE 623,6,623,19
  149.   COLOR 3
  150.   LINE 27,6,623,6
  151.   LINE 27,6,27,19
  152.   TEXT 130,16,"HyperText System (Beta) by Carlos Varela (18-Oct-1992)"
  153.   ' Arrows
  154.   @buttonup
  155.   @buttondown
  156.   '
  157.   COLOR 1
  158.   BOX 25,20,624,155
  159.   COLOR 2
  160.   BOX 26,21,27,154
  161.   COLOR 3
  162.   BOX 28,21,623,154
  163.   LINE 29,21,29,154
  164.   ' info
  165.   @drawboxbutton(25,180," Info")
  166.   @drawboxbutton(135,180," Load")
  167.   @drawboxbutton(245,180,"Status")
  168.   @drawboxbutton(355,180," Quit")
  169.   @drawboxbutton(465,180," Help")
  170.   @drawboxbutton(25,165," ")
  171.   @drawboxbutton(135,165," ")
  172.   @drawboxbutton(245,165," ")
  173.   @drawboxbutton(355,165," ")
  174.   @drawboxbutton(465,165," ")
  175. RETURN
  176. > PROCEDURE exit
  177.   QUIT
  178. RETURN
  179. > PROCEDURE formattext
  180.   xp=0
  181.   FOR n2=1 TO d
  182.     b$=MID$(c$,n2,1)
  183.     SELECT b$
  184.     CASE "!"
  185.       INC totallinks
  186.       linkl(totallinks)=n
  187.       linkx1(totallinks)=xp
  188.       a$(n)=a$(n)+gf$
  189.       @untilanotherexclamation
  190.     CASE "~"
  191.       linkx2(totallinks)=xp
  192.       a$(n)=a$(n)+bf$
  193.     DEFAULT
  194.       INC xp
  195.       a$(n)=a$(n)+b$
  196.     ENDSELECT
  197.   NEXT n2
  198. RETURN
  199. > PROCEDURE init
  200.   DEFMOUSE 3
  201.   @vt52
  202.   @setcolors
  203.   @drawmenu
  204.   DO
  205.     @waitformouse
  206.   LOOP
  207. RETURN
  208. > PROCEDURE load
  209.   totallines=0
  210.   ERASE a$(),link$(),linkx1(),linkx2(),linkl()
  211.   DIM a$(10000),link$(10000),linkx1(10000),linkx2(10000),linkl(10000)
  212.   FILESELECT "A:\*.CVH",e$,filename$
  213.   OPEN "I",#1,filename$
  214.   WHILE NOT EOF(#1)
  215.     LINE INPUT #1,a$(totallines)
  216.     INC totallines
  217.   WEND
  218.   DEC totallines
  219.   CLOSE #1
  220.   @drawbusybox("Formatting Text...")
  221.   FOR n=1 TO totallines
  222.     d=LEN(a$(n))
  223.     c$=a$(n)
  224.     a$(n)=""
  225.     @updatebusybox(n,totallines)
  226.     IF d>0
  227.       @formattext
  228.     ENDIF
  229.   NEXT n
  230.   @closebusybox
  231.   @displayfirstlines
  232.   @drawboxbutton(135,180,"Load")
  233. RETURN
  234. > PROCEDURE load2
  235.   totallines=0
  236.   ERASE a$(),link$(),linkx1(),linkx2(),linkl()
  237.   DIM a$(10000),link$(10000),linkx1(10000),linkx2(10000),linkl(10000)
  238.   OPEN "I",#1,filename$
  239.   WHILE NOT EOF(#1)
  240.     INC totallines
  241.     LINE INPUT #1,a$(totallines)
  242.   WEND
  243.   CLOSE #1
  244.   @drawbusybox("Formatting Text...")
  245.   totallinks=0
  246.   FOR n=1 TO totallines
  247.     d=LEN(a$(n))
  248.     c$=a$(n)
  249.     a$(n)=""
  250.     @updatebusybox(n,totallines)
  251.     IF d>0
  252.       @formattext
  253.     ENDIF
  254.   NEXT n
  255.   @closebusybox
  256.   @displayfirstlines
  257.   @drawboxbutton(135,180,"Load")
  258. RETURN
  259. > PROCEDURE loadtext
  260.   DIM a$(10000)
  261.   OPEN "I",#1,"SHELL.DOC"
  262.   RECALL #1,a$(),-1,totallines
  263.   CLOSE #1
  264.   FOR n=1 TO totallines
  265.     b$=MID$(a$(n),1,72)
  266.     a$(n)=b$+SPACE$(72-LEN(b$))
  267.   NEXT n
  268. RETURN
  269. > PROCEDURE scrolldown
  270.   IF toplinedisplayer>1
  271.     DEC toplinedisplayer
  272.     screenstart=XBIOS(2)
  273.     BMOVE screenstart+3680,screenstart+4960,19680
  274.     n=toplinedisplayer-1
  275.     PRINT AT(5,4);SPACE$(72)
  276.     PRINT AT(5,4);a$(n)
  277.   ENDIF
  278. RETURN
  279. > PROCEDURE scrollup
  280.   IF toplinedisplayer<totallines-16
  281.     INC toplinedisplayer
  282.     screenstart=XBIOS(2)
  283.     BMOVE screenstart+4960,screenstart+3680,19680
  284.     n=toplinedisplayer+16
  285.     PRINT AT(5,19);SPACE$(72)
  286.     PRINT AT(5,19);a$(n)
  287.   ENDIF
  288. RETURN
  289. > PROCEDURE setcolors
  290.   SETCOLOR 3,0
  291.   SETCOLOR 2,&H333
  292.   SETCOLOR 1,&H555
  293.   SETCOLOR 0,&H777
  294. RETURN
  295. > PROCEDURE status
  296.   GET 60,30,585,173,temp$
  297.   DEFFILL 2
  298.   PBOX 60,30,580,170
  299.   COLOR 1
  300.   BOX 60,30,580,170
  301.   DEFFILL 3
  302.   PBOX 65,171,585,173
  303.   PBOX 581,35,585,173
  304.   COLOR 0
  305.   LINE 61,31,61,169
  306.   LINE 61,31,579,31
  307.   LINE 62,32,62,168
  308.   LINE 62,32,578,32
  309.   LINE 63,33,63,167
  310.   COLOR 3
  311.   LINE 61,169,579,169
  312.   LINE 579,31,579,169
  313.   LINE 62,168,578,168
  314.   LINE 578,32,578,168
  315.   LINE 577,33,577,167
  316.   freememory$=STR$(FRE(0))
  317.   '  freememory$="0"
  318.   IF filename$=""
  319.     filename$=".CVH"
  320.   ENDIF
  321.   freememory$="Free memory"+STRING$(49-LEN(freememory$),".")+freememory$
  322.   freedisk$=STR$(DFREE(0))
  323.   freedisk$="Free disk space on drive A"+STRING$(34-LEN(freedisk$),".")+freedisk$
  324.   totallines$=STR$(totallines)
  325.   totallines$="Number of lines"+STRING$(45-LEN(totallines$),".")+totallines$
  326.   totallinks$=STR$(totallinks)
  327.   totallinks$="Number of links"+STRING$(45-LEN(totallinks$),".")+totallinks$
  328.   topfilename$="File "+MID$(filename$,1,LEN(filename$)-4)+" Status"
  329.   topfilename$=topfilename$+STRING$(60-LEN(topfilename$),".")
  330.   GRAPHMODE 2
  331.   DEFTEXT 0
  332.   TEXT 80,45,"Program Status.............................................."
  333.   TEXT 80,77,topfilename$
  334.   DEFTEXT 1
  335.   TEXT 80,53,freememory$
  336.   TEXT 80,61,freedisk$
  337.   TEXT 80,85,totallines$
  338.   TEXT 80,93,totallinks$
  339.   freememory$=""
  340.   freedisk$=""
  341.   GRAPHMODE 1
  342.   REPEAT
  343.   UNTIL MOUSEK
  344.   PUT 60,30,temp$
  345.   @drawboxbutton(245,180,"Status")
  346. RETURN
  347. > PROCEDURE untilanotherexclamation
  348.   DO
  349.     INC n2
  350.     b$=MID$(c$,n2,1)
  351.     EXIT IF b$="!"
  352.     link$(totallinks)=link$(totallinks)+b$
  353.   LOOP
  354. RETURN
  355. > PROCEDURE updatebusybox(done,total)
  356.   DEFFILL 2
  357.   PBOX 180,105,180+280*(done/total),115
  358. RETURN
  359. > PROCEDURE vt52
  360.   bf$=CHR$(27)+CHR$(98)+CHR$(3)
  361.   gf$=CHR$(27)+CHR$(98)+CHR$(1)
  362. RETURN
  363. > PROCEDURE waitformouse
  364.   IF MOUSEK=1
  365.     mx=MOUSEX
  366.     my=MOUSEY
  367.     IF mx>597 AND mx<623
  368.       IF my>177 AND my<193
  369.         @buttonup2
  370.       ELSE IF my>162 AND 174
  371.         @buttondown2
  372.       ENDIF
  373.     ENDIF
  374.     ' quit box
  375.     IF mx>354 AND mx<456
  376.       IF my>179 AND my<193
  377.         @drawboxbuttondown(355,180,"")
  378.         @exit
  379.       ENDIF
  380.     ENDIF
  381.     ' status
  382.     IF mx>244 AND mx<346
  383.       IF my>179 AND my<193
  384.         @drawboxbuttondown(245,180,"")
  385.         @status
  386.       ENDIF
  387.     ENDIF
  388.     ' load
  389.     IF mx>134 AND mx<236
  390.       IF my>179 AND my<193
  391.         @drawboxbuttondown(135,180,"")
  392.         @load
  393.       ENDIF
  394.     ENDIF
  395.     ' checklinkclick
  396.     IF mx>26 AND mx<624
  397.       IF my>21 AND my<154
  398.         @findlinks
  399.       ENDIF
  400.     ENDIF
  401.   ENDIF
  402. RETURN
  403. > PROCEDURE findlinks
  404.   linkxp=INT(mx/8)-4
  405.   IF toplinedisplayer=1
  406.     linkyp=INT(my/8)-4+toplinedisplayer
  407.   ELSE
  408.     linkyp=INT(my/8)-2+toplinedisplayer
  409.   ENDIF
  410.   '  PRINT linkxp,linkyp
  411.   filename$=""
  412.   FOR n=1 TO totallinks
  413.     IF linkyp=linkl(n) AND (linkxp>=linkx1(n) AND linkxp<=linkx2(n))
  414.       filename$=link$(n)+".CVH"
  415.     ENDIF
  416.   NEXT n
  417.   IF filename$<>""
  418.     @load2
  419.   ENDIF
  420. RETURN
  421.